package com.sneakxy.mybase4j.platform.service;

import java.util.List;

import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;

import com.sneakxy.mybase4j.base.service.IBaseService;
import com.sneakxy.mybase4j.platform.beans.Dict;

/**
 * 
 * @author 潜行的青衣
 * @see
 */
public interface IDictService extends IBaseService<Dict, String> {

	/**
	 * 
	 * @author 潜行的青衣
	 * @version
	 * @param parent_id 可以为空
	 * @param value 字典值
	 * @param children 是否读取字典数据
	 * @return
	 */
	public Dict findByType(String parent_id, String value, boolean children);
	
	/**
	 * 数据字典,parent_id is null
	 * @author 潜行的青衣
	 * @version
	 * @param value 字典值
	 * @param children 是否读取字典数据
	 * @return
	 */
	public Dict findByType(String value, boolean children);
	
	/**
	 * 数据字典值
	 * @author 潜行的青衣
	 * @version
	 * @param values 所有层值集合
	 * @param children 是否读取字典数据
	 * @return
	 */
	public Dict findByValues(String[] values, boolean children);
	
	/**
	 * 列表
	 * @author 潜行的青衣
	 * @version
	 * @param parent_id
	 * @param children 是否读取字典数据
	 * @return
	 */
	public List<Dict> findDicts(String parent_id, boolean children);
	
	/**
	 * 分页列表
	 * @author 潜行的青衣
	 * @version
	 * @param parent_id
	 * @param search
	 * @param pageable
	 * @return
	 */
	public Page<Dict> findBySearch(String parent_id, String search, Pageable pageable);
	
	public boolean hasChildren(String id);
	
}
